/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package PlasticSystem;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;



/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see PlasticSystem.PlasticSystemFactory
 * @model kind="package"
 * @generated
 */
public interface PlasticSystemPackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "PlasticSystem";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://www.sei.pku.edu.cn/rsa/plastic";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "PlasticSystem";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  PlasticSystemPackage eINSTANCE = PlasticSystem.impl.PlasticSystemPackageImpl.init();

  /**
   * The meta object id for the '{@link PlasticSystem.impl.LocalImpl <em>Local</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see PlasticSystem.impl.LocalImpl
   * @see PlasticSystem.impl.PlasticSystemPackageImpl#getLocal()
   * @generated
   */
  int LOCAL = 0;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int LOCAL__NAME = 0;

  /**
   * The feature id for the '<em><b>Max Threads</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int LOCAL__MAX_THREADS = 1;

  /**
   * The feature id for the '<em><b>Remote</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int LOCAL__REMOTE = 2;

  /**
   * The number of structural features of the '<em>Local</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int LOCAL_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link PlasticSystem.impl.RemoteImpl <em>Remote</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see PlasticSystem.impl.RemoteImpl
   * @see PlasticSystem.impl.PlasticSystemPackageImpl#getRemote()
   * @generated
   */
  int REMOTE = 1;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REMOTE__NAME = 0;

  /**
   * The feature id for the '<em><b>Parent</b></em>' container reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REMOTE__PARENT = 1;

  /**
   * The feature id for the '<em><b>Potential Threads</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REMOTE__POTENTIAL_THREADS = 2;

  /**
   * The number of structural features of the '<em>Remote</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int REMOTE_FEATURE_COUNT = 3;


  /**
   * Returns the meta object for class '{@link PlasticSystem.Local <em>Local</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Local</em>'.
   * @see PlasticSystem.Local
   * @generated
   */
  EClass getLocal();

  /**
   * Returns the meta object for the attribute '{@link PlasticSystem.Local#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see PlasticSystem.Local#getName()
   * @see #getLocal()
   * @generated
   */
  EAttribute getLocal_Name();

  /**
   * Returns the meta object for the attribute '{@link PlasticSystem.Local#getMaxThreads <em>Max Threads</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Max Threads</em>'.
   * @see PlasticSystem.Local#getMaxThreads()
   * @see #getLocal()
   * @generated
   */
  EAttribute getLocal_MaxThreads();

  /**
   * Returns the meta object for the containment reference list '{@link PlasticSystem.Local#getRemote <em>Remote</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Remote</em>'.
   * @see PlasticSystem.Local#getRemote()
   * @see #getLocal()
   * @generated
   */
  EReference getLocal_Remote();

  /**
   * Returns the meta object for class '{@link PlasticSystem.Remote <em>Remote</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Remote</em>'.
   * @see PlasticSystem.Remote
   * @generated
   */
  EClass getRemote();

  /**
   * Returns the meta object for the attribute '{@link PlasticSystem.Remote#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see PlasticSystem.Remote#getName()
   * @see #getRemote()
   * @generated
   */
  EAttribute getRemote_Name();

  /**
   * Returns the meta object for the container reference '{@link PlasticSystem.Remote#getParent <em>Parent</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the container reference '<em>Parent</em>'.
   * @see PlasticSystem.Remote#getParent()
   * @see #getRemote()
   * @generated
   */
  EReference getRemote_Parent();

  /**
   * Returns the meta object for the attribute '{@link PlasticSystem.Remote#getPotentialThreads <em>Potential Threads</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Potential Threads</em>'.
   * @see PlasticSystem.Remote#getPotentialThreads()
   * @see #getRemote()
   * @generated
   */
  EAttribute getRemote_PotentialThreads();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  PlasticSystemFactory getPlasticSystemFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link PlasticSystem.impl.LocalImpl <em>Local</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see PlasticSystem.impl.LocalImpl
     * @see PlasticSystem.impl.PlasticSystemPackageImpl#getLocal()
     * @generated
     */
    EClass LOCAL = eINSTANCE.getLocal();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute LOCAL__NAME = eINSTANCE.getLocal_Name();

    /**
     * The meta object literal for the '<em><b>Max Threads</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute LOCAL__MAX_THREADS = eINSTANCE.getLocal_MaxThreads();

    /**
     * The meta object literal for the '<em><b>Remote</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference LOCAL__REMOTE = eINSTANCE.getLocal_Remote();

    /**
     * The meta object literal for the '{@link PlasticSystem.impl.RemoteImpl <em>Remote</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see PlasticSystem.impl.RemoteImpl
     * @see PlasticSystem.impl.PlasticSystemPackageImpl#getRemote()
     * @generated
     */
    EClass REMOTE = eINSTANCE.getRemote();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute REMOTE__NAME = eINSTANCE.getRemote_Name();

    /**
     * The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference REMOTE__PARENT = eINSTANCE.getRemote_Parent();

    /**
     * The meta object literal for the '<em><b>Potential Threads</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute REMOTE__POTENTIAL_THREADS = eINSTANCE.getRemote_PotentialThreads();

  }

  /*Global utility methods are generated here*/
    
} //PlasticSystemPackage
